## C.3. Identifying Your Alpha System

There are many different Alpha systems, each requiring different installation methods. Because different Linux kernels are compiled to meet these variations in CPU and system designs, you must identify your Alpha hardware to correctly choose boot disks and kernel disks for various distributions.

Before you install an operating system, you must know the machine's graphics options and audio components, system memory, CPU class, disk-drive interfaces and sizes, existing operating systems/filesystems (if any), and attached peripherals, especially any CD-ROM drive and floppy drives. Some Alpha systems require firmware configuration changes and even actual hardware changes to complete a Linux installation.

Which Linux distribution you choose to install may depend on the hardware you have and any other operating systems that you run on it. After you gather your hardware information, you can determine which distribution best suits your needs. You can always build any source packages from other installations once you have a bootable system. Here are a few examples of hardware factors that dictate your choice of distribution or method of installation:

- Some Alpha systems require setting jumpers to load Linux and install it as a native, firmware-bootable operating system.

- If your system has no floppy disk drive, you may not be able to install the Linux distribution you want on your system, because of firmware constraints in supporting filesystems and devices on systems that do not have floppy disk devices. We recommend that you install or attach a floppy drive to your system. If your system's floppy drive simply "died," it's very inexpensive to replace.[3]

  > [3]Even the extra-thin 3.5 inch floppy used in the older Multia and Alphabook 1 "systems" can be replaced with a standard laptop drive. On newer Alpha systems hardware, most hardware is interchangeable with standard OEM PC hardware.

- If your Linux installation shares the computer with another operating system (installed on different hard-disk partitions or different hard disks), different versions of Linux offer different levels of filesystem and utility compatibility with co-resident operating systems. For example, if you want to run Tru64 Unix (Digital Unix, or DU) on your system as well as the Debian Linux Alpha distribution, their default disk filesystem, partitioning, and labeling would conflict. Likewise, if you apply BSD-style disk labeling from Linux, that partition will not be accepted as valid by DU. If you want to set up Linux co-resident with another operating system on an Alpha system, the safest way is to partition the disk from within that operating system and define the partition for Linux to be installed to.

- The Linux `fdisk` utility fails to label DOSFS filesystems so that SRM and other firmware utilities will access them. Therefore, as a general rule, format your MS-DOS diskettes for configuring your system using MS-DOS or Windows NT (or buy preformatted MS-DOS diskettes).

- The first time you install Linux on older machines (especially UDB/Multias), your installation may fail if your system's internal battery is not charged. Reports of motherboards shipped from a vendor with a dead battery are common. Some systems have a rechargeable battery that nevertheless will not recharge on a powered-up system if the battery is discharged when the system is turned on. For instance, the monitor will not work, and firmware changes that you need to complete a self-booting installation will not be saved.

Once you have gathered your hardware data and selected your Linux distribution, choose your installation method. Alpha systems vary more than typical PC systems (having been engineered to be used as everything from basic display terminals to supercomputers), so you should evaluate your hardware and choose the booting method you will use with your Linux distribution. Otherwise, you may find that you cannot complete the installation as you expected, or that Linux will be difficult to boot without rebuilding the installation.

Most Alpha installations use Milo, which is the easiest and most reliable method for installing Linux. The Milo utility is a mini-kernel that shares some of the same low-level PALcode (the language in which the firmware of an Alpha system is written) with the Linux kernel. Milo passes its hardware configuration definitions to Linux when it bootstraps the kernel, and Linux uses those definitions to interface with the PALcode segment that is co-resident in system memory with the Linux kernel. While there are alternatives to the Milo miniloader, you cannot use the usual Intel Linux boot management utilities to prepare an Alpha system for Linux installation, because they cannot provide the necessary firmware interface support.

If you add a CD-ROM drive to your system to install Linux, check your hardware documentation and Linux package documentation to determine that the CD-ROM will be recognized natively in the BIOS or that your Milo loader will support that drive. Standard SCSI CD-ROM drives are supported by Milo using integral SCSI controllers and several popular add-on controllers,[4] and an ATAPI(EIDE) CD-ROM is supported for some systems, especially those with a built-in ATAPI controller. But if the CD-ROM drive is not accessible as a native drive expected on a particular system, your system firmware or the Milo miniloader that bootstraps the Linux kernel may not recognize it.

> [4]The current Red Hat distribution of Milo recognizes the NCR 810 family of SCSI controllers; Adaptec1740, 2940, and 3940 series SCSI controllers; and QLOGIC ISP controllers. The Milo SHOW command causes Milo to display a list of its supported devices.

Although network installation of Linux (storing the files on one machine and downloading them over the network to the machine where you want Linux to run) should be possible, major distributions have had persistent problems supporting this capability. We are not going to describe the technique. We assume you are installing Linux on a stand-alone Alpha system. You can configure it for network use later.

> #### NOTE

> Configuring and setting booting behavior on some older Alpha systems requires changing jumper settings on the motherboard or changing system data stored in nonvolatile RAM, or both. You may need to change jumper settings initially for installation and again afterward to configure the system.

In typical Linux CD-ROM installation, you generally proceed as follows:

1. Collect system hardware information to select the correct installation files and procedures. Look at your system hardware manuals or system administration manuals. Get bug reports and review patches to the current software distribution that you will use to install your package. Collect current software installation documentation if you believe the information provided by the vendor is obsolete or incomplete.

2. Consider the size of your hard-disk drives and decide how they are (or will be) partitioned for Linux. "Section 3.1.2, "Drives and Partitions Under Linux"" in Chapter 3, "Installation and Initial Configuration", offers basic considerations for allocating disk space and partitioning, although you must adjust the numbers for Alpha. The installation utilities that you choose will support one or another disk-partitioning method, but cannot be used for all partitioning requirements.

3. Determine how you want Linux to boot when the installation is complete. This may affect your choice of installation method.

4. Choose your Linux installation method based on your hardware and its firmware, your disk-partitioning requirements, and Linux's booting behavior. For almost all installations, we think that Milo is the best firmware utility for loading Linux.

5. Create the correct data diskettes (Milo, kernel image, and ramdisk image) diskettes for your system.

6. Configure your system hardware as needed to support the installation of Linux.

7. If you use the usual Milo installation procedure, create the correct Milo image diskette for your system.

8. Power up the system, access its console (older systems use ARC, while newer ones use AlphaBIOS or SRM as described later), and load your Linux loader (usually the LINLOAD.EXE program, which is then used to load Milo). If you have Windows NT installed on your system, you can use the NT OSloader to load Milo; otherwise you will use system firmware to load a bootstrap loader that will then be used to prepare the system to install Linux.

9. Load Milo, use Milo to boot the kernel, and run the CD-ROM installation program.

10. Perform any additional disk partitioning and formatting for your system booting requirements.

11. Load additional Linux utilities, applications, compilers, and programming languages or libraries. Recompiling a current, stable release of the Linux kernel tailored to your system requirements is highly recommended.

12. When you are happy with your Linux installation, set it up to autoboot or boot from a boot manager selection menu. For some older systems, this may also require setting jumpers. Most systems require changes in the firmware console or installation of a bootstrap program (probably a Milo version) in system nonvolatile RAM.

An alternate procedure is required for those systems that Milo cannot configure; these alternatives are dependent on your system configuration and maintenance firmware. Like other systems, each Alpha contains at least one firmware program stored in system ROM or flash ROM that provides a configuration-program execution environment. Systems set up for Tru64 Unix or Open VMS have a System Reference Maintenance console or SRM. Systems set up for Windows NT usually have the Alpha Reference Console (ARC) firmware. Newer systems may have an AlphaBIOS instead of ARC; SRM is usually provided if the system was sold with DU.

> #### NOTE

> Firmware programs are small and efficient. Alpha system ROMs typically include space to hold several of them, along with other essential programs, such as debugging and diagnostic tools (which should not be overwritten).

> Once Linux is installed, many systems provide a flash-RAM management utility (FMU) to allow you to "blow" a Milo image into system nonvolatile RAM. Other such utilities may come with your purchase of a commercial OS release or a developer package. Some are distributed on an EPROM chip that you install. Because ARC and AlphaBIOS firmware provide a graphical interface environment, they take more space, and you will not find both of them on a standard system. AlphaBIOS is a replacement for ARC that attempts to make OS installation on Alpha systems more uniform and automatic--more like OS installation on an Intel-architectured PC.

> Booting Linux can be made as automatic as booting MS-DOS or Windows. We do not recommend that you use an FMU until you are satisfied with your tuned-up Linux installation.

Because all systems that are configured to run Windows NT are provided with a floppy drive that Milo can use to install Linux, the two main installation paths involve Milo (and ARC or AlphaBIOS), SRM and Milo, or other loader utilities. We focus on Milo-based installation methods for consistent and predictable results and offer an installation solution for any significant Alpha platform. If you do not like the specific solution that we describe, you will learn about other installation options as you review your resource materials.

### C.3.1. Limitations of ARC Firmware

Most older systems have ARC firmware to set up hardware configurations, specify boot options, and perform other system maintenance tasks. This firmware is the usual starting point for installing Linux. It has several limitations. It knows how to access files only in MS-DOS, HPFS, and ISO9660 filesystems. When accessing files in MS-DOS or ISO9660, the system only recognizes 8.3 filenames. ARC offers a simple menu-driven console interface for managing your system hardware.

### C.3.2. Limitations of AlphaBIOS Firmware

Newer systems use AlphaBIOS firmware instead of ARC. AlphaBIOS firmware is still in active development. If your system has AlphaBIOS, install the latest AlphaBIOS firmware update before installing Linux. AlphaBIOS knows how to access files only in MS-DOS and ISO9660 filesystems. When accessing files, the system only recognizes 8.3 filenames. AlphaBIOS implements a graphical interface for system configuration.

### C.3.3. Limitations of the SRM Console Firmware

The SRM console can load data from IDE/ATAPI, SCSI, or floppy drives. It uses a system's native SCSI drive controller to access a recognized SCSI device for booting. SRM can read a SCSI floppy drive. SRM can access authentic MS-DOS-format filesystems (but not those created by Linux `fdisk`), BSD-labeled UFS filesystems (but not BSD-style filesystems labeled by Linux), and ISO9660 filesystems. An SRM console is available firmware for any system that does not provide or have ARC or AlphaBIOS.

The SRM console allows you to boot the system by transferring control to the secondary bootstrap loader that it loads blindly. SRM knows little about disk partitions or filesystems and treats disk devices as block devices. It reads from the first 512-byte sector of the storage device. This sector should contain a sector address and offset from which SRM can begin reading the size of data block. SRM goes to that location and loads contiguous data into memory. The data should be an image file of the secondary loader that boots the system.

Alpha systems usually have two secondary waders: the "raw" loader from the Linux kernel and the separate `aboot` utility. The `aboot` utility is more flexible than the raw loader if you must install Linux using the SRM console. However, you can use the SRM console to load the Milo loader for a more consistent installation procedure. Some machines do not currently have a MILO available (DS20), so, in those cases, using SRM and a secondary boot loader is mandatory.

When you use SRM and `aboot` to boot Linux, the first partition of the disk should start at cylinder number 2. This leaves room at the beginning of the disk to install `aboot`. The third partition on the disk (partition C) should be the entire size of the disk, from cylinder 1 to the end. The SRM Howto provides more information for those who will install using SRM and `aboot` at http://www.alphalinux.org/faq/srm.html.

### C.3.4. Limitations of Milo Miniloader

The Milo miniloader does not know how to boot itself from disk before booting Linux; it must be initially loaded either from system flash memory or from disk using an operating system loader (OSloader) developed for Alpha systems, such as Windows NT Alpha's boot manager. Linux distributions provide `linload.exe`.

When Milo is loaded from disk, it is bootstrap-loaded by ARC, AlphaBIOS, or SRM console after you use `linload.exe`. `linload.exe` knows MS-DOS (FAT) filesystems, but does not recognize HPFS or VMS filesystems. Milo is apparently limited to MS-DOS, ISO9660, and ext2 filesystems when it has been loaded by `linload.exe`.

Milo will read ext2 filesystems by default and can load operating system images in ISO9660 or MS-DOS (FAT) formats using a command-line option. Milo should load compressed kernel image files made using gzip, if given the full filename (e.g., vmlinux.gz), but we have found that at least some Milo distributions cannot process such files, at least not when loaded from ISO9660 or MS-DOS filesystems. For more information go to http://www.alphalinux.org/faq/milo.html.

Copyright © 2001 O'Reilly & Associates. All rights reserved.